general purpose grid properties
The most important general purpose grid properties are:

array - ANY ARRAY for any purpose
textArray - STRING ARRAY for any purpose
textString - STRING for any purpose
valueArray - XLONG array for any purpose

array is the least common general purpose property. It is most flexible however, because it can hold an array of any data type, including user-defined composite types. Since GuiDesigner has no way of knowing the array data type, however, GuiDesigner cannot copy the array to process GetArray and SetArray messages. GuiDesigner can grab and poke the original array itself by means of ATTACH or SWAP statements however, since ATTACH and SWAP are not data type sensitive. The following standard message processing functions / messages are built into GuiDesigner:

XuiGrabArray() - process GrabArray messages
XuiPokeArray() - process PokeArray messages

The textArray property holds an arbitrary size string array, the contents of which is grid type specific. The following standard message processing functions / messages are built into GuiDesigner:

XuiGetTextArray() - process GetTextArray messages
XuiSetTextArray() - process SetTextArray messages
XuiGrabTextArray() - process GrabTextArray messages
XuiPokeTextArray() - process PokeTextArray messages

The textString property holds an arbitrary size string, the contents of which are grid type specific. The following standard message processing functions / messages are buit into GuiDesigner:

XuiGetTextString() - process GetTextString messages
XuiSetTextString() - process SetTextString messages
XuiGrabTextString() - process GrabTextString messages
XuiPokeTextString() - process PokeTextString messages

The valueArray property holds an arbitrary size XLONG array, the contents of which is grid type specific. The following standard message processing functions / messages are built into GuiDesigner:

XuiCreateValueArray() - process CreateValueArray messages
XuiGetValueArray() - process GetValueArray messages
XuiSetValueArray() - process SetValueArray messages
XuiGrabValueArray() - process GrabValueArray messages
XuiPokeValueArray() - process PokeValueArray messages
XuiGetValue() - process GetValue messages
XuiSetValue() - process SetValue messages
XuiGetValues() - process GetValues messages
XuiSetValues() - process SetValues messages

grab and poke
Grab and Poke messages and functions are unlike Get and Set in important ways. Grab messages remove the original array or string they refer to, leaving an empty array or string in the property until replaced with a subsequent Poke or Set . Similarly, arrays and strings passed by reference in Poke messages are stolen, so the returned argument is an empty array or string. Be careful.